home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / FieldView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  3.3 KB  |  146 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Rectangle;
  8. import java.awt.Shape;
  9. import javax.swing.BoundedRangeModel;
  10. import javax.swing.JTextField;
  11. import javax.swing.event.DocumentEvent;
  12.  
  13. public class FieldView extends PlainView {
  14.    public FieldView(Element var1) {
  15.       super(var1);
  16.    }
  17.  
  18.    protected Shape adjustAllocation(Shape var1) {
  19.       if (var1 != null) {
  20.          Rectangle var2 = var1.getBounds();
  21.          int var3 = (int)this.getPreferredSpan(1);
  22.          int var4 = (int)this.getPreferredSpan(0);
  23.          if (var2.height != var3) {
  24.             int var5 = var2.height - var3;
  25.             var2.y += var5 / 2;
  26.             var2.height -= var5;
  27.          }
  28.  
  29.          Container var12 = ((View)this).getContainer();
  30.          if (var12 instanceof JTextField) {
  31.             JTextField var6 = (JTextField)var12;
  32.             BoundedRangeModel var7 = var6.getHorizontalVisibility();
  33.             int var8 = Math.max(var4, var2.width);
  34.             int var9 = var7.getValue();
  35.             int var10 = Math.min(var8, var2.width - 1);
  36.             if (var9 + var10 > var8) {
  37.                var9 = var8 - var10;
  38.             }
  39.  
  40.             var7.setRangeProperties(var9, var10, var7.getMinimum(), var8, false);
  41.             if (var4 < var2.width) {
  42.                int var11 = var2.width - 1 - var4;
  43.                switch (((JTextField)var12).getHorizontalAlignment()) {
  44.                   case 0:
  45.                      var2.x += var11 / 2;
  46.                      var2.width -= var11;
  47.                   case 1:
  48.                   case 2:
  49.                   case 3:
  50.                   default:
  51.                      break;
  52.                   case 4:
  53.                      var2.x += var11;
  54.                      var2.width -= var11;
  55.                }
  56.             } else {
  57.                var2.width = var4;
  58.                var2.x -= var7.getValue();
  59.             }
  60.          }
  61.  
  62.          return var2;
  63.       } else {
  64.          return null;
  65.       }
  66.    }
  67.  
  68.    Shape adjustPaintRegion(Shape var1) {
  69.       return this.adjustAllocation(var1);
  70.    }
  71.  
  72.    protected FontMetrics getFontMetrics() {
  73.       Container var1 = ((View)this).getContainer();
  74.       return ((Component)var1).getFontMetrics(((Component)var1).getFont());
  75.    }
  76.  
  77.    public float getPreferredSpan(int var1) {
  78.       switch (var1) {
  79.          case 0:
  80.             Segment var2 = ((PlainView)this).getLineBuffer();
  81.             Document var3 = ((View)this).getDocument();
  82.  
  83.             int var4;
  84.             try {
  85.                var3.getText(0, var3.getLength(), var2);
  86.                var4 = Utilities.getTabbedTextWidth(var2, this.getFontMetrics(), 0, this, 0);
  87.             } catch (BadLocationException var5) {
  88.                var4 = 0;
  89.             }
  90.  
  91.             return (float)var4;
  92.          default:
  93.             return super.getPreferredSpan(var1);
  94.       }
  95.    }
  96.  
  97.    public int getResizeWeight(int var1) {
  98.       return var1 == 0 ? 1 : 0;
  99.    }
  100.  
  101.    public void insertUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  102.       super.insertUpdate(var1, this.adjustAllocation(var2), var3);
  103.       this.updateVisibilityModel();
  104.    }
  105.  
  106.    public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
  107.       return super.modelToView(var1, this.adjustAllocation(var2), var3);
  108.    }
  109.  
  110.    public void paint(Graphics var1, Shape var2) {
  111.       Rectangle var3 = (Rectangle)var2;
  112.       var1.clipRect(var3.x, var3.y, var3.width, var3.height);
  113.       super.paint(var1, var2);
  114.    }
  115.  
  116.    public void removeUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  117.       super.removeUpdate(var1, this.adjustAllocation(var2), var3);
  118.       this.updateVisibilityModel();
  119.    }
  120.  
  121.    void updateVisibilityModel() {
  122.       Container var1 = ((View)this).getContainer();
  123.       if (var1 instanceof JTextField) {
  124.          JTextField var2 = (JTextField)var1;
  125.          BoundedRangeModel var3 = var2.getHorizontalVisibility();
  126.          int var4 = (int)this.getPreferredSpan(0);
  127.          int var5 = var3.getExtent();
  128.          int var6 = Math.max(var4, var5);
  129.          var5 = var5 == 0 ? var6 : var5;
  130.          int var7 = var6 - var5;
  131.          int var8 = var3.getValue();
  132.          if (var8 + var5 > var6) {
  133.             var8 = var6 - var5;
  134.          }
  135.  
  136.          var7 = Math.max(0, Math.min(var7, var8));
  137.          var3.setRangeProperties(var7, var5, 0, var6, false);
  138.       }
  139.  
  140.    }
  141.  
  142.    public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
  143.       return super.viewToModel(var1, var2, this.adjustAllocation(var3), var4);
  144.    }
  145. }
  146.